/**
 * jims
 */
package com.jims.master.modules.drug.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * 药品出库主记录Entity
 * @author fengyg
 * @version 2017-03-16
 */
public class DrugExportMaster extends DataEntity<DrugExportMaster> {
	
	private static final long serialVersionUID = 1L;
	private String documentNo;		// 出库单号
	private String storageId;		// 库存单位
	private Date exportDate;		// 出库日期
	private String receiver;		// 收货方
	private Double accountReceivable;		// 应付款
	private Double accountPayed;		// 已付款
	private Double additionalFee;		// 附加费
	private String exportClass;		// 出库类别
	private String accountIndicator;		// 记账标志
	private Date acctDate;		// 记账日期
	private String acctOperator;		// 记账人
	private String tallyIndicator;		// 上账标志
	private Date tallyDate;		// 上账日期
	private String tallyOperator;		// 上账人
	private String voucherNo;		// 凭证号
	private String recoveryDocuNo;		// 纠错出库的单据号
	private String importOperator;		// 对应的入库者
	private Date importDate;		// 对应的入库日期
	private String importMasterId;		// 对应的入库主表ID(出库后,收货方批量入库时主表ID)

	public String getUpdateDateStr() {
		return updateDateStr;
	}

	public void setUpdateDateStr(String updateDateStr) {
		this.updateDateStr = updateDateStr;
	}

	public String getCreateDateStr() {
		return createDateStr;
	}

	public void setCreateDateStr(String creatDateStr) {
		this.createDateStr = creatDateStr;
	}

	private String createDateStr;
	private String updateDateStr;

	public DrugExportMaster() {
		super();
	}

	public DrugExportMaster(String id){
		super(id);
	}

	@Length(min=1, max=32, message="出库单号长度必须介于 1 和 32 之间")
	public String getDocumentNo() {
		return documentNo;
	}

	public void setDocumentNo(String documentNo) {
		this.documentNo = documentNo;
	}
	
	@Length(min=1, max=64, message="库存单位长度必须介于 1 和 64 之间")
	public String getStorageId() {
		return storageId;
	}

	public void setStorageId(String storageId) {
		this.storageId = storageId;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getExportDate() {
		return exportDate;
	}

	public void setExportDate(Date exportDate) {
		this.exportDate = exportDate;
	}
	
	@Length(min=1, max=64, message="收货方长度必须介于 1 和 64 之间")
	public String getReceiver() {
		return receiver;
	}

	public void setReceiver(String receiver) {
		this.receiver = receiver;
	}
	
	public Double getAccountReceivable() {
		return accountReceivable;
	}

	public void setAccountReceivable(Double accountReceivable) {
		this.accountReceivable = accountReceivable;
	}
	
	public Double getAccountPayed() {
		return accountPayed;
	}

	public void setAccountPayed(Double accountPayed) {
		this.accountPayed = accountPayed;
	}
	
	public Double getAdditionalFee() {
		return additionalFee;
	}

	public void setAdditionalFee(Double additionalFee) {
		this.additionalFee = additionalFee;
	}
	
	@Length(min=1, max=64, message="出库类别长度必须介于 1 和 64 之间")
	public String getExportClass() {
		return exportClass;
	}

	public void setExportClass(String exportClass) {
		this.exportClass = exportClass;
	}
	
	@Length(min=0, max=1, message="记账标志长度必须介于 0 和 1 之间")
	public String getAccountIndicator() {
		return accountIndicator;
	}

	public void setAccountIndicator(String accountIndicator) {
		this.accountIndicator = accountIndicator;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAcctDate() {
		return acctDate;
	}

	public void setAcctDate(Date acctDate) {
		this.acctDate = acctDate;
	}
	
	@Length(min=0, max=64, message="记账人长度必须介于 0 和 64 之间")
	public String getAcctOperator() {
		return acctOperator;
	}

	public void setAcctOperator(String acctOperator) {
		this.acctOperator = acctOperator;
	}
	
	@Length(min=0, max=1, message="上账标志长度必须介于 0 和 1 之间")
	public String getTallyIndicator() {
		return tallyIndicator;
	}

	public void setTallyIndicator(String tallyIndicator) {
		this.tallyIndicator = tallyIndicator;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getTallyDate() {
		return tallyDate;
	}

	public void setTallyDate(Date tallyDate) {
		this.tallyDate = tallyDate;
	}
	
	@Length(min=0, max=64, message="上账人长度必须介于 0 和 64 之间")
	public String getTallyOperator() {
		return tallyOperator;
	}

	public void setTallyOperator(String tallyOperator) {
		this.tallyOperator = tallyOperator;
	}
	
	@Length(min=0, max=64, message="凭证号长度必须介于 0 和 64 之间")
	public String getVoucherNo() {
		return voucherNo;
	}

	public void setVoucherNo(String voucherNo) {
		this.voucherNo = voucherNo;
	}
	
	@Length(min=0, max=64, message="纠错出库的单据号长度必须介于 0 和 64 之间")
	public String getRecoveryDocuNo() {
		return recoveryDocuNo;
	}

	public void setRecoveryDocuNo(String recoveryDocuNo) {
		this.recoveryDocuNo = recoveryDocuNo;
	}
	
	@Length(min=0, max=64, message="对应的入库者长度必须介于 0 和 64 之间")
	public String getImportOperator() {
		return importOperator;
	}

	public void setImportOperator(String importOperator) {
		this.importOperator = importOperator;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getImportDate() {
		return importDate;
	}

	public void setImportDate(Date importDate) {
		this.importDate = importDate;
	}
	
	@Length(min=0, max=64, message="对应的入库主表ID长度必须介于 0 和 64 之间")
	public String getImportMasterId() {
		return importMasterId;
	}

	public void setImportMasterId(String importMasterId) {
		this.importMasterId = importMasterId;
	}
	
}